const { sequelize } = require('../config/database');
const { User, Transaction, StoredWine } = require('../models');
const bcrypt = require('bcryptjs');

const migrate = async () => {
  try {
    console.log('开始数据库迁移...');

    // 同步所有模型（会创建表）
    await sequelize.sync({ force: false, alter: true });
    
    console.log('✅ 数据表创建/更新成功');

    // 检查是否存在管理员账户
    const adminCount = await User.count({ where: { role: 'admin' } });
    
    if (adminCount === 0) {
      console.log('创建默认管理员账户...');
      
      // 创建默认管理员
      const hashedPassword = await bcrypt.hash('admin123', 10);
      await User.create({
        phone: '13800138000',
        password: hashedPassword,
        name: '管理员',
        role: 'admin',
        balance: 0
      });
      
      console.log('✅ 默认管理员创建成功');
      console.log('   手机号: 13800138000');
      console.log('   密码: admin123');
      console.log('   ⚠️  请登录后立即修改密码！');
    } else {
      console.log('✅ 管理员账户已存在');
    }

    console.log('✅ 数据库迁移完成');
    process.exit(0);
  } catch (error) {
    console.error('❌ 迁移失败:', error);
    process.exit(1);
  }
};

migrate();
